Conditions | 7 |
Paths | 10 |
Total Lines | 63 |
Lines | 0 |
Ratio | 0 % |
Changes | 1 | ||
Bugs | 1 | Features | 0 |
Small methods make your code easier to understand, in particular if combined with a good name. Besides, if your method is small, finding a good name is usually much easier.
For example, if you find yourself adding comments to a method's body, this is usually a good sign to extract the commented part to a new method, and use the comment as a starting point when coming up with a good name for this new method.
Commonly applied refactorings include:
If many parameters/temporary variables are present:
1 | import Handlebars from 'handlebars' |
||
28 | constructor(templateId, template, json, onlyHTML = false) { |
||
29 | // HOOKS beforePageJson |
||
30 | json = abeExtend.hooks.instance.trigger('beforePageJson', json) |
||
31 | |||
32 | abeEngine.instance.content = json |
||
33 | |||
34 | if(typeof Handlebars.templates[templateId] !== 'undefined' && |
||
35 | Handlebars.templates[templateId] !== null && |
||
36 | config.files.templates.precompile |
||
37 | ){ |
||
38 | template = Handlebars.templates[templateId] |
||
39 | this.html = template(json, {data: {intl: config.intlData}}) |
||
40 | } else { |
||
41 | |||
42 | this._onlyHTML = onlyHTML |
||
43 | this.template = template |
||
44 | this.HbsTemplatePath = path.join(config.root, config.templates.url, 'hbs/'+templateId+'.hbs') |
||
45 | |||
46 | // Remove text with attribute "visible=false" |
||
47 | this.template = cmsTemplates.prepare.removeHiddenAbeTag(this.template) |
||
48 | |||
49 | if(!this._onlyHTML){ |
||
50 | // Surrounds each Abe tag (which are text/rich/textarea and not in html attribute) with <abe> tag |
||
51 | // ie. <title><abe>{{abe type='text' key='meta_title' desc='Meta title' tab='Meta' order='4000'}}</abe></title> |
||
52 | this.template = cmsTemplates.prepare.addAbeHtmlTagBetweenAbeTags(this.template) |
||
53 | |||
54 | this.template = cmsTemplates.prepare.addAbeDataAttrForHtmlAttributes(this.template) |
||
55 | |||
56 | this.template = cmsTemplates.prepare.addAbeDataAttrForHtmlTag(this.template) |
||
57 | |||
58 | this.template = cmsTemplates.prepare.addAbeSourceComment(this.template, json) |
||
59 | } else { |
||
60 | this.template = cmsTemplates.prepare.removeHandlebarsRawFromHtml(this.template) |
||
61 | } |
||
62 | |||
63 | // je rajoute les index pour chaque bloc lié à un each |
||
64 | this.template = cmsTemplates.prepare.indexEachBlocks(this.template, json, this._onlyHTML) |
||
65 | |||
66 | // We remove the {{abe type=data ...}} from the text |
||
67 | this.template = cmsData.source.removeDataList(this.template) |
||
68 | |||
69 | // It's time to replace the [index] by {{@index}} (concerning each blocks) |
||
70 | this.template = cmsTemplates.prepare.replaceAbeEachIndex(this.template) |
||
71 | |||
72 | if(config.files.templates.precompile){ |
||
73 | // Let's persist the precompiled template for future use (kind of cache) |
||
74 | fse.writeFileSync(this.HbsTemplatePath, Handlebars.precompile(this.template), 'utf8') |
||
75 | Manager.instance.addHbsTemplate(templateId) |
||
76 | } |
||
77 | |||
78 | // I compile the text |
||
79 | var compiledTemplate = Handlebars.compile(cmsTemplates.insertDebugtoolUtilities(this.template, this._onlyHTML)) |
||
80 | |||
81 | // I create the html page ! yeah !!! |
||
82 | this.html = compiledTemplate(json, {data: {intl: config.intlData}}) |
||
83 | } |
||
84 | |||
85 | if(this._onlyHTML) { |
||
86 | this.html = abeExtend.hooks.instance.trigger('afterPageSaveCompile', this.html, json) |
||
87 | }else { |
||
88 | this.html = abeExtend.hooks.instance.trigger('afterPageEditorCompile', this.html, json) |
||
89 | } |
||
90 | } |
||
91 | } |